<?php

class category extends CI_model {

    function __construct() {
        parent::__construct();
        $this->load->database();
    }

    function find_by_id($root_id) {
        $lang = $this->session->userdata('lang') != NULL ? $this->session->userdata('lang') : 1;
        return $this->db->select('es_category.id,es_category.id_parent,es_category.level_depth,es_category_lang.`name`')
                        ->from('es_category,es_category_lang,lang')
                        ->where('es_category.id = es_category_lang.id_category')
                        ->where('es_category_lang.id_lang = lang.id')
                        ->where('es_category.id', $root_id)
                        ->where('lang.id', $lang)
                        ->get()->row_array();
    }

    function get_all_category($filter) {
        $lang = $this->session->userdata('lang') != NULL ? $this->session->userdata('lang') : 1;
        return $this->db->select('es_category.id,es_category.id_parent,es_category.position,es_category.level_depth,es_category_lang.`name`')
                        ->from('es_category,es_category_lang,lang')
                        ->where('es_category.id = es_category_lang.id_category')
                        ->where('es_category_lang.id_lang = lang.id')
                        ->where($filter)
                        ->where('lang.id', $lang)
                        ->get()->result_array();
    }

    function get_categories() {
        $lang = $this->session->userdata('lang') != NULL ? $this->session->userdata('lang') : 1;
        return $this->db->select('es_category.id,es_category.id_parent,es_category.position,es_category.level_depth,es_category_lang.`name`')
                        ->from('es_category,es_category_lang,lang')
                        ->where('es_category.id = es_category_lang.id_category')
                        ->where('es_category_lang.id_lang = lang.id')
                        ->where('lang.id', $lang)
                        ->get()->result_array();
    }

    function get_child($id_parent) {
        return $this->db->select('id')->from('es_category')->where('id_parent', $id_parent)->get()->result_array();
    }

    function get_child_vmenu($id_parent, $id_lang) {
        $this->db->select('es_category.id, es_category_lang.name');
        $this->db->from('es_category');
        $this->db->where('id_parent', $id_parent);
        $this->db->where('id_lang', $id_lang);
        $this->db->join('es_category_lang', 'es_category.id = es_category_lang.id_category');
        $this->db->order_by('es_category.position', 'desc');
        return $this->db->get()->result_array();
    }

    function delete_category($id_category) {
        $this->db->delete('es_category_lang', array('id_category' => $id_category));
        return $this->db->delete('es_category', array('id' => $id_category));
    }

    function get_shop_categories($root_id) {
        $cat_data = array();
        $lang = $this->session->userdata('lang') != NULL ? $this->session->userdata('lang') : 1;
        $all = $this->db->select('es_store_category.id,es_store_category.id_parent,es_store_category.position,es_store_category.level_depth,es_store_category_lang.`name`')
                        ->from('es_store_category,es_store_category_lang,lang')
                        ->where('es_store_category.id = es_store_category_lang.id_category')
                        ->where('es_store_category_lang.id_lang = lang.id')
                        ->where('lang.id', $lang)
                        ->get()->result_array();
        foreach ($all as $a) {
            $this->get_root_id($a['id']);
            if($this->x==$root_id){
                $cat_data[] = $a;
            }   
        }
        return $cat_data;
    }

    var $x = 0;

    function get_root_id($id_category) {
        $cats = $this->db->select()->from('es_store_category')->where('id', $id_category)->get()->row();
        if ($cats->id_parent > 0) {
            $this->get_root_id($cats->id_parent);
        } else {
            $this->x = $cats->id;
        }
    }

    function get_shop_child($id_parent) {
        return $this->db->select('id')->from('es_store_category')->where('id_parent', $id_parent)->get()->result_array();
    }

}

?>
